#include<bits/stdc++.h>
#include "hash_table.h"
#include<ctime>
#include "MD5.h"
using namespace std;
int total_book_items=0;
int total_users=0;
int total_scmanagers=0;
int total_usmanagers=0;
HashTable user_id;//用户名映射到用户编号
HashTable script_id;//图书名映射到图书编号
HashTable user_password_id;//用户密码映射到用户编号(用户登录认证)
HashTable user_manager_password;//用户管理员认证
HashTable script_manager_password;//图书管理员认证
const int restrain_bro=60;//借书限制时间为60天
const int restrain_bro_exp=1;//违约罚款数
struct brorrow_item{//借书记录条款
    string borer;
    int broer_id;
    string script_name;
    int script_id;
    time_t bro_time;//具体借书时间
};
struct ret_item{//还书记录条款
    string borer;
    int broer_id;
    string script_name;
    int script_id;
    time_t acu_ret_time;//具体的还书时间
    bool is_def;//是否违规
};
struct script_item{//图书结构体的实现
    int id;
    string class_id;//类型编号
    std::string name;//名称
    std::string publisher;//出版社
    std::string Writer;//作者
    long long exp;//单价
    int res_num;//库存数量
    string ISBN;//版号
    time_t publisher_time;//出版时间
    vector<brorrow_item>items_b;
    vector<ret_item>items_r;//借还记录
    int num;//库存数量
    int has_brorrow;//这一类型的书被借走多少本
};
